#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 20+2;
int n, m, mr, mc;
ll d[maxn][maxn];
bool G[maxn][maxn];
bool in(int i, int j) {return i>=0 && i<=n && j>=0 && j<=m;}

ll DP(int r, int c){
    ll& ans = d[r][c];
    if(ans) return ans;
    if(r == n && m == c) return 1;
    if(in(r+1, c) && !G[r+1][c]) ans += DP(r+1, c);
    if(in(r, c+1) && !G[r][c+1]) ans += DP(r, c+1);
    return ans;
}
int main() {
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
    cin >> n >> m >> mr >> mc;
    G[mr][mc] = true;
    int DR[4] = {-2, -1, 1, 2};
    for (int dr : DR) {
        if(abs(dr) == 1){
            int DC[2] = {-2, 2};
            for (int dc : DC) {
                if(in(mr+dr, mc+dc)) G[mr+dr][mc+dc] = true;
            }
        }else{
            int DC[2] = {-1, 1};
            for (int dc : DC) {
                if(in(mr+dr, mc+dc)) G[mr+dr][mc+dc] = true;
            }
        }
    }
    cout << DP(0,0);
    return 0;
}